-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[GTK] Minibrowser does not render any content #12791
Conversation
EWS run on previous version of this PR (hash d67f305) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks reasonable, but I think it's good another pair of eyes takes a look. I do have one small comment, though.
I'm not sure "This happens in systems with multiple GPUs enabled." is accurate. I'm hitting what seems to be the same problem in a simple libvirt VM with just virtio graphics. edit: more detail on that - I'm only seeing it since update in Fedora Rawhide from webkitgtk 2.41.1 to 2.41.2. I'm seeing it when running Yelp (the help browser). It shows no help content, and on the console I get these messages:
This does not happen in the VM virtio case with 2.41.1. |
You are right it's not accurate, it doesn't always happen in systems with multiple gpus, but the particular case is explained un the rest of the commit message. |
d67f305
to
d9b373d
Compare
EWS run on current version of this PR (hash d9b373d)
|
https://bugs.webkit.org/show_bug.cgi?id=254807 Reviewed by Žan Doberšek. This might happen in systems with multiple GPUs enabled. The problem is that we might end up using a different GPU than the one used by the application in the UI process. This is because both GBMDevice and mesa surfaceless platform use always the first device having a render node returned by drmGetDevices2(). To make sure we use the right GPU everywhere we need to get the GPU used by the UI process and send it to the web process. Mesa surfaceless platform doesn't allow to change the device, so we need to use GBM platform that receives the device as the native display when initializing the EGL display. Surfaceless platform is still used for swrast, because GBM requires a GPU device. * Source/WebCore/PlatformGTK.cmake: * Source/WebCore/SourcesGTK.txt: * Source/WebCore/platform/graphics/PlatformDisplay.cpp: (WebCore::PlatformDisplay::~PlatformDisplay): (WebCore::PlatformDisplay::eglDevice): (WebCore::PlatformDisplay::drmDeviceFile): (WebCore::drmRenderNodeFromPrimaryDeviceFile): (WebCore::PlatformDisplay::drmRenderNodeFile): (WebCore::PlatformDisplay::gbmDevice): * Source/WebCore/platform/graphics/PlatformDisplay.h: * Source/WebCore/platform/graphics/egl/GLContext.cpp: (WebCore::GLContext::getEGLConfig): (WebCore::GLContext::createWindowContext): (WebCore::GLContext::create): (WebCore::GLContext::createSharing): * Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp: Renamed from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp. * Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h: Renamed from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h. * Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp: Added. (WebCore::PlatformDisplayGBM::create): (WebCore::PlatformDisplayGBM::PlatformDisplayGBM): (WebCore::PlatformDisplayGBM::~PlatformDisplayGBM): * Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h: Added. * Source/WebKit/Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode): * Source/WebKit/Shared/WebProcessCreationParameters.h: * Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: (WebKit::WebKitProtocolHandler::handleGPU): * Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: (WebKit::WebProcessPool::platformInitializeWebProcess): * Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp: (WebKit::AcceleratedBackingStoreDMABuf::Surface::Surface): * Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp: (WebKit::AcceleratedSurface::create): * Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: (WebKit::AcceleratedSurfaceDMABuf::AcceleratedSurfaceDMABuf): (WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::create): * Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: (WebKit::WebProcess::platformInitializeWebProcess): Canonical link: https://commits.webkit.org/263061@main
d9b373d
to
5fa2966
Compare
Committed 263061@main (5fa2966): https://commits.webkit.org/263061@main Reviewed commits have been landed. Closing PR #12791 and removing active labels. |
5fa2966
d9b373d
🧪 style🛠 ios🛠 mac🛠 wpe🛠 wincairo🧪 bindings🛠 ios-sim🛠 mac-AS-debug🧪 wpe-wk2🧪 webkitperl🧪 ios-wk2🧪 api-mac🛠 gtk🧪 ios-wk2-wpt🧪 mac-wk1🧪 gtk-wk2🧪 api-ios🧪 mac-wk2🧪 api-gtk🛠 tv🧪 mac-AS-debug-wk2🛠 tv-sim🧪 mac-wk2-stress🛠 watch🛠 watch-sim